/*
 * ./clk-sun50iw6_tbl.c
 *
 * Copyright (c) 2007-2019 Allwinnertech Co., Ltd.
 * Author: zhengxiaobin <zhengxiaobin@allwinnertech.com>
 *
 * This software is licensed under the terms of the GNU General Public
 * License version 2, as published by the Free Software Foundation, and
 * may be copied, distributed, and modified under those terms.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */
#include "clk-sun50iw6.h"
/*
 * freq table from hardware, need follow rules
 * 1)   each table  named as
 *      factor_pll1_tbl
 *      factor_pll2_tbl
 *      ...
 * 2) for each table line
 *      a) follow the format PLLx(n, k, m, p, d1, d2, freq), and keep the
 *         factors order
 *      b) if any factor not used, skip it
 *      c) the factor is the value to write registers, not means factor + 1
 *
 *      example
 *      PLL1(9, 0, 0, 2, 60000000) means PLL1(n, k, m, p, freq)
 *      PLLVIDEO0(3, 0, 96000000) means PLLVIDEO0(n, m, freq)
 *
 */

/* PLLCPU(n, m, p, freq)	F_N8X8_M0X2_P16x2 */
struct sunxi_clk_factor_freq factor_pllcpu_tbl[] = {
PLLCPU(11,		0,		2,		72000000U),
PLLCPU(12,		0,		2,		78000000U),
PLLCPU(13,		0,		2,		84000000U),
PLLCPU(14,		0,		2,		90000000U),
PLLCPU(15,		0,		2,		96000000U),
PLLCPU(16,		0,		2,		102000000U),
PLLCPU(17,		0,		2,		108000000U),
PLLCPU(18,		0,		2,		114000000U),
PLLCPU(19,		0,		2,		120000000U),
PLLCPU(20,		0,		2,		126000000U),
PLLCPU(21,		0,		2,		132000000U),
PLLCPU(22,		0,		2,		138000000U),
PLLCPU(11,		0,		1,		144000000U),
PLLCPU(12,		0,		1,		156000000U),
PLLCPU(13,		0,		1,		168000000U),
PLLCPU(14,		0,		1,		180000000U),
PLLCPU(15,		0,		1,		192000000U),
PLLCPU(16,		0,		1,		204000000U),
PLLCPU(17,		0,		1,		216000000U),
PLLCPU(18,		0,		1,		228000000U),
PLLCPU(19,		0,		1,		240000000U),
PLLCPU(20,		0,		1,		252000000U),
PLLCPU(21,		0,		1,		264000000U),
PLLCPU(22,		0,		1,		276000000U),
PLLCPU(11,		0,		0,		288000000U),
PLLCPU(12,		0,		0,		312000000U),
PLLCPU(13,		0,		0,		336000000U),
PLLCPU(14,		0,		0,		360000000U),
PLLCPU(15,		0,		0,		384000000U),
PLLCPU(16,		0,		0,		408000000U),
PLLCPU(17,		0,		0,		432000000U),
PLLCPU(18,		0,		0,		456000000U),
PLLCPU(19,		0,		0,		480000000U),
PLLCPU(20,		0,		0,		504000000U),
PLLCPU(21,		0,		0,		528000000U),
PLLCPU(22,		0,		0,		552000000U),
PLLCPU(23,		0,		0,		576000000U),
PLLCPU(24,		0,		0,		600000000U),
PLLCPU(25,		0,		0,		624000000U),
PLLCPU(26,		0,		0,		648000000U),
PLLCPU(27,		0,		0,		672000000U),
PLLCPU(28,		0,		0,		696000000U),
PLLCPU(29,		0,		0,		720000000U),
PLLCPU(30,		0,		0,		744000000U),
PLLCPU(31,		0,		0,		768000000U),
PLLCPU(32,		0,		0,		792000000U),
PLLCPU(33,		0,		0,		816000000U),
PLLCPU(34,		0,		0,		840000000U),
PLLCPU(35,		0,		0,		864000000U),
PLLCPU(36,		0,		0,		888000000U),
PLLCPU(37,		0,		0,		912000000U),
PLLCPU(38,		0,		0,		936000000U),
PLLCPU(39,		0,		0,		960000000U),
PLLCPU(40,		0,		0,		984000000U),
PLLCPU(41,		0,		0,		1008000000U),
PLLCPU(42,		0,		0,		1032000000U),
PLLCPU(43,		0,		0,		1056000000U),
PLLCPU(44,		0,		0,		1080000000U),
PLLCPU(45,		0,		0,		1104000000U),
PLLCPU(46,		0,		0,		1128000000U),
PLLCPU(47,		0,		0,		1152000000U),
PLLCPU(48,		0,		0,		1176000000U),
PLLCPU(49,		0,		0,		1200000000U),
PLLCPU(50,		0,		0,		1224000000U),
PLLCPU(51,		0,		0,		1248000000U),
PLLCPU(52,		0,		0,		1272000000U),
PLLCPU(53,		0,		0,		1296000000U),
PLLCPU(54,		0,		0,		1320000000U),
PLLCPU(55,		0,		0,		1344000000U),
PLLCPU(56,		0,		0,		1368000000U),
PLLCPU(57,		0,		0,		1392000000U),
PLLCPU(58,		0,		0,		1416000000U),
PLLCPU(59,		0,		0,		1440000000U),
PLLCPU(60,		0,		0,		1464000000U),
PLLCPU(61,		0,		0,		1488000000U),
PLLCPU(62,		0,		0,		1512000000U),
PLLCPU(63,		0,		0,		1536000000U),
PLLCPU(64,		0,		0,		1560000000U),
PLLCPU(65,		0,		0,		1584000000U),
PLLCPU(66,		0,		0,		1608000000U),
PLLCPU(67,		0,		0,		1632000000U),
PLLCPU(68,		0,		0,		1656000000U),
PLLCPU(69,		0,		0,		1680000000U),
PLLCPU(70,		0,		0,		1704000000U),
PLLCPU(71,		0,		0,		1728000000U),
PLLCPU(72,		0,		0,		1752000000U),
PLLCPU(73,		0,		0,		1776000000U),
PLLCPU(74,		0,		0,		1800000000U),
PLLCPU(75,		0,		0,		1824000000U),
PLLCPU(76,		0,		0,		1848000000U),
PLLCPU(77,		0,		0,		1872000000U),
PLLCPU(78,		0,		0,		1896000000U),
PLLCPU(79,		0,		0,		1920000000U),
PLLCPU(80,		0,		0,		1944000000U),
PLLCPU(81,		0,		0,		1968000000U),
PLLCPU(82,		0,		0,		1992000000U),
PLLCPU(83,		0,		0,		2016000000U),
PLLCPU(84,		0,		0,		2040000000U),
PLLCPU(85,		0,		0,		2064000000U),
PLLCPU(86,		0,		0,		2088000000U),
PLLCPU(87,		0,		0,		2112000000U),
PLLCPU(88,		0,		0,		2136000000U),
PLLCPU(89,		0,		0,		2160000000U),
PLLCPU(90,		0,		0,		2184000000U),
};

/* PLLDDR0(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllddr0_tbl[] = {
PLLDDR0(14,		0,		1,		180000000U),
PLLDDR0(15,		0,		1,		192000000U),
PLLDDR0(16,		0,		1,		204000000U),
PLLDDR0(17,		0,		1,		216000000U),
PLLDDR0(18,		0,		1,		228000000U),
PLLDDR0(19,		0,		1,		240000000U),
PLLDDR0(20,		0,		1,		252000000U),
PLLDDR0(21,		0,		1,		264000000U),
PLLDDR0(22,		0,		1,		276000000U),
PLLDDR0(11,		0,		0,		288000000U),
PLLDDR0(12,		0,		0,		312000000U),
PLLDDR0(13,		0,		0,		336000000U),
PLLDDR0(14,		0,		0,		360000000U),
PLLDDR0(15,		0,		0,		384000000U),
PLLDDR0(16,		0,		0,		408000000U),
PLLDDR0(17,		0,		0,		432000000U),
PLLDDR0(18,		0,		0,		456000000U),
PLLDDR0(19,		0,		0,		480000000U),
PLLDDR0(20,		0,		0,		504000000U),
PLLDDR0(21,		0,		0,		528000000U),
PLLDDR0(22,		0,		0,		552000000U),
PLLDDR0(23,		0,		0,		576000000U),
PLLDDR0(24,		0,		0,		600000000U),
PLLDDR0(25,		0,		0,		624000000U),
PLLDDR0(26,		0,		0,		648000000U),
PLLDDR0(27,		0,		0,		672000000U),
PLLDDR0(28,		0,		0,		696000000U),
PLLDDR0(29,		0,		0,		720000000U),
PLLDDR0(30,		0,		0,		744000000U),
PLLDDR0(31,		0,		0,		768000000U),
PLLDDR0(32,		0,		0,		792000000U),
PLLDDR0(33,		0,		0,		816000000U),
PLLDDR0(34,		0,		0,		840000000U),
PLLDDR0(35,		0,		0,		864000000U),
PLLDDR0(36,		0,		0,		888000000U),
PLLDDR0(37,		0,		0,		912000000U),
PLLDDR0(38,		0,		0,		936000000U),
PLLDDR0(39,		0,		0,		960000000U),
PLLDDR0(40,		0,		0,		984000000U),
PLLDDR0(41,		0,		0,		1008000000U),
PLLDDR0(42,		0,		0,		1032000000U),
PLLDDR0(43,		0,		0,		1056000000U),
PLLDDR0(44,		0,		0,		1080000000U),
PLLDDR0(45,		0,		0,		1104000000U),
PLLDDR0(46,		0,		0,		1128000000U),
PLLDDR0(47,		0,		0,		1152000000U),
PLLDDR0(48,		0,		0,		1176000000U),
PLLDDR0(49,		0,		0,		1200000000U),
PLLDDR0(50,		0,		0,		1224000000U),
PLLDDR0(51,		0,		0,		1248000000U),
PLLDDR0(52,		0,		0,		1272000000U),
PLLDDR0(53,		0,		0,		1296000000U),
PLLDDR0(54,		0,		0,		1320000000U),
PLLDDR0(55,		0,		0,		1344000000U),
PLLDDR0(56,		0,		0,		1368000000U),
PLLDDR0(57,		0,		0,		1392000000U),
PLLDDR0(58,		0,		0,		1416000000U),
PLLDDR0(59,		0,		0,		1440000000U),
PLLDDR0(60,		0,		0,		1464000000U),
PLLDDR0(61,		0,		0,		1488000000U),
PLLDDR0(62,		0,		0,		1512000000U),
PLLDDR0(63,		0,		0,		1536000000U),
PLLDDR0(64,		0,		0,		1560000000U),
PLLDDR0(65,		0,		0,		1584000000U),
PLLDDR0(66,		0,		0,		1608000000U),
PLLDDR0(67,		0,		0,		1632000000U),
PLLDDR0(68,		0,		0,		1656000000U),
PLLDDR0(69,		0,		0,		1680000000U),
PLLDDR0(70,		0,		0,		1704000000U),
PLLDDR0(71,		0,		0,		1728000000U),
PLLDDR0(72,		0,		0,		1752000000U),
PLLDDR0(73,		0,		0,		1776000000U),
PLLDDR0(74,		0,		0,		1800000000U),
PLLDDR0(75,		0,		0,		1824000000U),
PLLDDR0(76,		0,		0,		1848000000U),
PLLDDR0(77,		0,		0,		1872000000U),
PLLDDR0(78,		0,		0,		1896000000U),
PLLDDR0(79,		0,		0,		1920000000U),
PLLDDR0(80,		0,		0,		1944000000U),
PLLDDR0(81,		0,		0,		1968000000U),
PLLDDR0(82,		0,		0,		1992000000U),
PLLDDR0(83,		0,		0,		2016000000U),
PLLDDR0(84,		0,		0,		2040000000U),
PLLDDR0(85,		0,		0,		2064000000U),
PLLDDR0(86,		0,		0,		2088000000U),
PLLDDR0(87,		0,		0,		2112000000U),
PLLDDR0(88,		0,		0,		2136000000U),
PLLDDR0(89,		0,		0,		2160000000U),
PLLDDR0(90,		0,		0,		2184000000U),
};

/* PLLPERIPH0(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllperiph0_tbl[] = {
PLLPERIPH0(11,		0,		0,		72000000U),
PLLPERIPH0(12,		0,		0,		78000000U),
PLLPERIPH0(13,		0,		0,		84000000U),
PLLPERIPH0(14,		0,		0,		90000000U),
PLLPERIPH0(15,		0,		0,		96000000U),
PLLPERIPH0(16,		0,		0,		102000000U),
PLLPERIPH0(17,		0,		0,		108000000U),
PLLPERIPH0(18,		0,		0,		114000000U),
PLLPERIPH0(19,		0,		0,		120000000U),
PLLPERIPH0(20,		0,		0,		126000000U),
PLLPERIPH0(21,		0,		0,		132000000U),
PLLPERIPH0(22,		0,		0,		138000000U),
PLLPERIPH0(23,		0,		0,		144000000U),
PLLPERIPH0(24,		0,		0,		150000000U),
PLLPERIPH0(25,		0,		0,		156000000U),
PLLPERIPH0(26,		0,		0,		162000000U),
PLLPERIPH0(27,		0,		0,		168000000U),
PLLPERIPH0(28,		0,		0,		174000000U),
PLLPERIPH0(29,		0,		0,		180000000U),
PLLPERIPH0(30,		0,		0,		186000000U),
PLLPERIPH0(31,		0,		0,		192000000U),
PLLPERIPH0(32,		0,		0,		198000000U),
PLLPERIPH0(33,		0,		0,		204000000U),
PLLPERIPH0(34,		0,		0,		210000000U),
PLLPERIPH0(35,		0,		0,		216000000U),
PLLPERIPH0(36,		0,		0,		222000000U),
PLLPERIPH0(37,		0,		0,		228000000U),
PLLPERIPH0(38,		0,		0,		234000000U),
PLLPERIPH0(39,		0,		0,		240000000U),
PLLPERIPH0(40,		0,		0,		246000000U),
PLLPERIPH0(41,		0,		0,		252000000U),
PLLPERIPH0(42,		0,		0,		258000000U),
PLLPERIPH0(43,		0,		0,		264000000U),
PLLPERIPH0(44,		0,		0,		270000000U),
PLLPERIPH0(45,		0,		0,		276000000U),
PLLPERIPH0(46,		0,		0,		282000000U),
PLLPERIPH0(47,		0,		0,		288000000U),
PLLPERIPH0(48,		0,		0,		294000000U),
PLLPERIPH0(49,		0,		0,		300000000U),
PLLPERIPH0(50,		0,		0,		306000000U),
PLLPERIPH0(51,		0,		0,		312000000U),
PLLPERIPH0(52,		0,		0,		318000000U),
PLLPERIPH0(53,		0,		0,		324000000U),
PLLPERIPH0(54,		0,		0,		330000000U),
PLLPERIPH0(55,		0,		0,		336000000U),
PLLPERIPH0(56,		0,		0,		342000000U),
PLLPERIPH0(57,		0,		0,		348000000U),
PLLPERIPH0(58,		0,		0,		354000000U),
PLLPERIPH0(59,		0,		0,		360000000U),
PLLPERIPH0(60,		0,		0,		366000000U),
PLLPERIPH0(61,		0,		0,		372000000U),
PLLPERIPH0(62,		0,		0,		378000000U),
PLLPERIPH0(63,		0,		0,		384000000U),
PLLPERIPH0(64,		0,		0,		390000000U),
PLLPERIPH0(65,		0,		0,		396000000U),
PLLPERIPH0(66,		0,		0,		402000000U),
PLLPERIPH0(67,		0,		0,		408000000U),
PLLPERIPH0(68,		0,		0,		414000000U),
PLLPERIPH0(69,		0,		0,		420000000U),
PLLPERIPH0(70,		0,		0,		426000000U),
PLLPERIPH0(71,		0,		0,		432000000U),
PLLPERIPH0(72,		0,		0,		438000000U),
PLLPERIPH0(73,		0,		0,		444000000U),
PLLPERIPH0(74,		0,		0,		450000000U),
PLLPERIPH0(75,		0,		0,		456000000U),
PLLPERIPH0(76,		0,		0,		462000000U),
PLLPERIPH0(77,		0,		0,		468000000U),
PLLPERIPH0(78,		0,		0,		474000000U),
PLLPERIPH0(79,		0,		0,		480000000U),
PLLPERIPH0(80,		0,		0,		486000000U),
PLLPERIPH0(81,		0,		0,		492000000U),
PLLPERIPH0(82,		0,		0,		498000000U),
PLLPERIPH0(83,		0,		0,		504000000U),
PLLPERIPH0(84,		0,		0,		510000000U),
PLLPERIPH0(85,		0,		0,		516000000U),
PLLPERIPH0(86,		0,		0,		522000000U),
PLLPERIPH0(87,		0,		0,		528000000U),
PLLPERIPH0(88,		0,		0,		534000000U),
PLLPERIPH0(89,		0,		0,		540000000U),
PLLPERIPH0(90,		0,		0,		546000000U),
PLLPERIPH0(91,		0,		0,		552000000U),
PLLPERIPH0(92,		0,		0,		558000000U),
PLLPERIPH0(93,		0,		0,		564000000U),
PLLPERIPH0(94,		0,		0,		570000000U),
PLLPERIPH0(95,		0,		0,		576000000U),
PLLPERIPH0(96,		0,		0,		582000000U),
PLLPERIPH0(97,		0,		0,		588000000U),
PLLPERIPH0(98,		0,		0,		594000000U),
PLLPERIPH0(99,		0,		0,		600000000U),
PLLPERIPH0(100,		0,		0,		606000000U),
};

/* PLLPERIPH1(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllperiph1_tbl[] = {
PLLPERIPH1(11,		0,		0,		72000000U),
PLLPERIPH1(12,		0,		0,		78000000U),
PLLPERIPH1(13,		0,		0,		84000000U),
PLLPERIPH1(14,		0,		0,		90000000U),
PLLPERIPH1(15,		0,		0,		96000000U),
PLLPERIPH1(16,		0,		0,		102000000U),
PLLPERIPH1(17,		0,		0,		108000000U),
PLLPERIPH1(18,		0,		0,		114000000U),
PLLPERIPH1(19,		0,		0,		120000000U),
PLLPERIPH1(20,		0,		0,		126000000U),
PLLPERIPH1(21,		0,		0,		132000000U),
PLLPERIPH1(22,		0,		0,		138000000U),
PLLPERIPH1(23,		0,		0,		144000000U),
PLLPERIPH1(24,		0,		0,		150000000U),
PLLPERIPH1(25,		0,		0,		156000000U),
PLLPERIPH1(26,		0,		0,		162000000U),
PLLPERIPH1(27,		0,		0,		168000000U),
PLLPERIPH1(28,		0,		0,		174000000U),
PLLPERIPH1(29,		0,		0,		180000000U),
PLLPERIPH1(30,		0,		0,		186000000U),
PLLPERIPH1(31,		0,		0,		192000000U),
PLLPERIPH1(32,		0,		0,		198000000U),
PLLPERIPH1(33,		0,		0,		204000000U),
PLLPERIPH1(34,		0,		0,		210000000U),
PLLPERIPH1(35,		0,		0,		216000000U),
PLLPERIPH1(36,		0,		0,		222000000U),
PLLPERIPH1(37,		0,		0,		228000000U),
PLLPERIPH1(38,		0,		0,		234000000U),
PLLPERIPH1(39,		0,		0,		240000000U),
PLLPERIPH1(40,		0,		0,		246000000U),
PLLPERIPH1(41,		0,		0,		252000000U),
PLLPERIPH1(42,		0,		0,		258000000U),
PLLPERIPH1(43,		0,		0,		264000000U),
PLLPERIPH1(44,		0,		0,		270000000U),
PLLPERIPH1(45,		0,		0,		276000000U),
PLLPERIPH1(46,		0,		0,		282000000U),
PLLPERIPH1(47,		0,		0,		288000000U),
PLLPERIPH1(48,		0,		0,		294000000U),
PLLPERIPH1(49,		0,		0,		300000000U),
PLLPERIPH1(50,		0,		0,		306000000U),
PLLPERIPH1(51,		0,		0,		312000000U),
PLLPERIPH1(52,		0,		0,		318000000U),
PLLPERIPH1(53,		0,		0,		324000000U),
PLLPERIPH1(54,		0,		0,		330000000U),
PLLPERIPH1(55,		0,		0,		336000000U),
PLLPERIPH1(56,		0,		0,		342000000U),
PLLPERIPH1(57,		0,		0,		348000000U),
PLLPERIPH1(58,		0,		0,		354000000U),
PLLPERIPH1(59,		0,		0,		360000000U),
PLLPERIPH1(60,		0,		0,		366000000U),
PLLPERIPH1(61,		0,		0,		372000000U),
PLLPERIPH1(62,		0,		0,		378000000U),
PLLPERIPH1(63,		0,		0,		384000000U),
PLLPERIPH1(64,		0,		0,		390000000U),
PLLPERIPH1(65,		0,		0,		396000000U),
PLLPERIPH1(66,		0,		0,		402000000U),
PLLPERIPH1(67,		0,		0,		408000000U),
PLLPERIPH1(68,		0,		0,		414000000U),
PLLPERIPH1(69,		0,		0,		420000000U),
PLLPERIPH1(70,		0,		0,		426000000U),
PLLPERIPH1(71,		0,		0,		432000000U),
PLLPERIPH1(72,		0,		0,		438000000U),
PLLPERIPH1(73,		0,		0,		444000000U),
PLLPERIPH1(74,		0,		0,		450000000U),
PLLPERIPH1(75,		0,		0,		456000000U),
PLLPERIPH1(76,		0,		0,		462000000U),
PLLPERIPH1(77,		0,		0,		468000000U),
PLLPERIPH1(78,		0,		0,		474000000U),
PLLPERIPH1(79,		0,		0,		480000000U),
PLLPERIPH1(80,		0,		0,		486000000U),
PLLPERIPH1(81,		0,		0,		492000000U),
PLLPERIPH1(82,		0,		0,		498000000U),
PLLPERIPH1(83,		0,		0,		504000000U),
PLLPERIPH1(84,		0,		0,		510000000U),
PLLPERIPH1(85,		0,		0,		516000000U),
PLLPERIPH1(86,		0,		0,		522000000U),
PLLPERIPH1(87,		0,		0,		528000000U),
PLLPERIPH1(88,		0,		0,		534000000U),
PLLPERIPH1(89,		0,		0,		540000000U),
PLLPERIPH1(90,		0,		0,		546000000U),
PLLPERIPH1(91,		0,		0,		552000000U),
PLLPERIPH1(92,		0,		0,		558000000U),
PLLPERIPH1(93,		0,		0,		564000000U),
PLLPERIPH1(94,		0,		0,		570000000U),
PLLPERIPH1(95,		0,		0,		576000000U),
PLLPERIPH1(96,		0,		0,		582000000U),
PLLPERIPH1(97,		0,		0,		588000000U),
PLLPERIPH1(98,		0,		0,		594000000U),
PLLPERIPH1(99,		0,		0,		600000000U),
PLLPERIPH1(100,		0,		0,		606000000U),
};

/* PLLGPU(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllgpu_tbl[] = {
PLLGPU(13,		0,		1,		168000000U),
PLLGPU(14,		0,		1,		180000000U),
PLLGPU(15,		0,		1,		192000000U),
PLLGPU(16,		0,		1,		204000000U),
PLLGPU(17,		0,		1,		216000000U),
PLLGPU(18,		0,		1,		228000000U),
PLLGPU(19,		0,		1,		240000000U),
PLLGPU(20,		0,		1,		252000000U),
PLLGPU(21,		0,		1,		264000000U),
PLLGPU(22,		0,		1,		276000000U),
PLLGPU(11,		0,		0,		288000000U),
PLLGPU(12,		0,		0,		312000000U),
PLLGPU(13,		0,		0,		336000000U),
PLLGPU(14,		0,		0,		360000000U),
PLLGPU(15,		0,		0,		384000000U),
PLLGPU(16,		0,		0,		408000000U),
PLLGPU(17,		0,		0,		432000000U),
PLLGPU(18,		0,		0,		456000000U),
PLLGPU(19,		0,		0,		480000000U),
PLLGPU(20,		0,		0,		504000000U),
PLLGPU(21,		0,		0,		528000000U),
PLLGPU(22,		0,		0,		552000000U),
PLLGPU(23,		0,		0,		576000000U),
PLLGPU(24,		0,		0,		600000000U),
PLLGPU(25,		0,		0,		624000000U),
PLLGPU(26,		0,		0,		648000000U),
PLLGPU(27,		0,		0,		672000000U),
PLLGPU(28,		0,		0,		696000000U),
PLLGPU(29,		0,		0,		720000000U),
PLLGPU(30,		0,		0,		744000000U),
PLLGPU(31,		0,		0,		768000000U),
PLLGPU(32,		0,		0,		792000000U),
PLLGPU(33,		0,		0,		816000000U),
};

/* PLLVIDEO0(n, d1, freq)	F_N8X8_D1V1X1 */
struct sunxi_clk_factor_freq factor_pllvideo0_tbl[] = {
PLLVIDEO0(15,		1,		48000000U),
PLLVIDEO0(16,		1,		51000000U),
PLLVIDEO0(17,		1,		54000000U),
PLLVIDEO0(18,		1,		57000000U),
PLLVIDEO0(19,		1,		60000000U),
PLLVIDEO0(20,		1,		63000000U),
PLLVIDEO0(21,		1,		66000000U),
PLLVIDEO0(22,		1,		69000000U),
PLLVIDEO0(11,		0,		72000000U),
PLLVIDEO0(12,		0,		78000000U),
PLLVIDEO0(13,		0,		84000000U),
PLLVIDEO0(14,		0,		90000000U),
PLLVIDEO0(15,		0,		96000000U),
PLLVIDEO0(16,		0,		102000000U),
PLLVIDEO0(17,		0,		108000000U),
PLLVIDEO0(18,		0,		114000000U),
PLLVIDEO0(19,		0,		120000000U),
PLLVIDEO0(20,		0,		126000000U),
PLLVIDEO0(21,		0,		132000000U),
PLLVIDEO0(22,		0,		138000000U),
PLLVIDEO0(23,		0,		144000000U),
PLLVIDEO0(24,		0,		150000000U),
PLLVIDEO0(25,		0,		156000000U),
PLLVIDEO0(26,		0,		162000000U),
PLLVIDEO0(27,		0,		168000000U),
PLLVIDEO0(28,		0,		174000000U),
PLLVIDEO0(29,		0,		180000000U),
PLLVIDEO0(30,		0,		186000000U),
PLLVIDEO0(31,		0,		192000000U),
PLLVIDEO0(32,		0,		198000000U),
PLLVIDEO0(33,		0,		204000000U),
PLLVIDEO0(34,		0,		210000000U),
PLLVIDEO0(35,		0,		216000000U),
PLLVIDEO0(36,		0,		222000000U),
PLLVIDEO0(37,		0,		228000000U),
PLLVIDEO0(38,		0,		234000000U),
PLLVIDEO0(39,		0,		240000000U),
PLLVIDEO0(40,		0,		246000000U),
PLLVIDEO0(41,		0,		252000000U),
PLLVIDEO0(42,		0,		258000000U),
PLLVIDEO0(43,		0,		264000000U),
PLLVIDEO0(44,		0,		270000000U),
PLLVIDEO0(45,		0,		276000000U),
PLLVIDEO0(46,		0,		282000000U),
PLLVIDEO0(47,		0,		288000000U),
PLLVIDEO0(48,		0,		294000000U),
PLLVIDEO0(98,		1,		297000000U),
PLLVIDEO0(49,		0,		300000000U),
};

/* PLLVIDEO1(n, d1, freq)	F_N8X8_D1V1X1 */
struct sunxi_clk_factor_freq factor_pllvideo1_tbl[] = {
PLLVIDEO1(15,		1,		48000000U),
PLLVIDEO1(16,		1,		51000000U),
PLLVIDEO1(17,		1,		54000000U),
PLLVIDEO1(18,		1,		57000000U),
PLLVIDEO1(19,     1,     60000000U),
PLLVIDEO1(29,     1,     90000000U),
PLLVIDEO1(30,     1,     93000000U),
PLLVIDEO1(31,     1,     96000000U),
PLLVIDEO1(32,     1,     99000000U),
PLLVIDEO1(33,     1,     102000000U),
PLLVIDEO1(34,     1,     105000000U),
PLLVIDEO1(17,     0,     108000000U),
PLLVIDEO1(36,     1,     111000000U),
PLLVIDEO1(18,     0,     114000000U),
PLLVIDEO1(38,     1,     117000000U),
PLLVIDEO1(19,     0,     120000000U),
PLLVIDEO1(40,     1,     123000000U),
PLLVIDEO1(20,     0,     126000000U),
PLLVIDEO1(42,     1,     129000000U),
PLLVIDEO1(21,     0,     132000000U),
PLLVIDEO1(44,     1,     135000000U),
PLLVIDEO1(22,     0,     138000000U),
PLLVIDEO1(46,     1,     141000000U),
PLLVIDEO1(23,     0,     144000000U),
PLLVIDEO1(48,     1,     147000000U),
PLLVIDEO1(24,     0,     150000000U),
PLLVIDEO1(50,     1,     153000000U),
PLLVIDEO1(25,     0,     156000000U),
PLLVIDEO1(52,     1,     159000000U),
PLLVIDEO1(26,     0,     162000000U),
PLLVIDEO1(54,     1,     165000000U),
PLLVIDEO1(27,     0,     168000000U),
PLLVIDEO1(56,     1,     171000000U),
PLLVIDEO1(28,     0,     174000000U),
PLLVIDEO1(58,     1,     177000000U),
PLLVIDEO1(29,     0,     180000000U),
PLLVIDEO1(60,     1,     183000000U),
PLLVIDEO1(30,     0,     186000000U),
PLLVIDEO1(62,     1,     189000000U),
PLLVIDEO1(31,     0,     192000000U),
PLLVIDEO1(64,     1,     195000000U),
PLLVIDEO1(32,     0,     198000000U),
PLLVIDEO1(66,     1,     201000000U),
PLLVIDEO1(33,     0,     204000000U),
PLLVIDEO1(68,     1,     207000000U),
PLLVIDEO1(34,     0,     210000000U),
PLLVIDEO1(70,     1,     213000000U),
PLLVIDEO1(35,     0,     216000000U),
PLLVIDEO1(72,     1,     219000000U),
PLLVIDEO1(36,     0,     222000000U),
PLLVIDEO1(74,     1,     225000000U),
PLLVIDEO1(37,     0,     228000000U),
PLLVIDEO1(76,     1,     231000000U),
PLLVIDEO1(38,     0,     234000000U),
PLLVIDEO1(78,     1,     237000000U),
PLLVIDEO1(39,     0,     240000000U),
PLLVIDEO1(80,     1,     243000000U),
PLLVIDEO1(40,     0,     246000000U),
PLLVIDEO1(82,     1,     249000000U),
PLLVIDEO1(41,     0,     252000000U),
PLLVIDEO1(84,     1,     255000000U),
PLLVIDEO1(42,     0,     258000000U),
PLLVIDEO1(86,     1,     261000000U),
PLLVIDEO1(43,     0,     264000000U),
PLLVIDEO1(88,     1,     267000000U),
PLLVIDEO1(44,     0,     270000000U),
PLLVIDEO1(90,     1,     273000000U),
PLLVIDEO1(45,     0,     276000000U),
PLLVIDEO1(92,     1,     279000000U),
PLLVIDEO1(46,     0,     282000000U),
PLLVIDEO1(94,     1,     285000000U),
PLLVIDEO1(47,     0,     288000000U),
PLLVIDEO1(96,     1,     291000000U),
PLLVIDEO1(48,     0,     294000000U),
PLLVIDEO1(98,     1,     297000000U),
PLLVIDEO1(49,     0,     300000000U),
PLLVIDEO1(100,     1,     303000000U),
PLLVIDEO1(50,     0,     306000000U),
PLLVIDEO1(102,     1,     309000000U),
PLLVIDEO1(51,     0,     312000000U),
PLLVIDEO1(104,     1,     315000000U),
PLLVIDEO1(52,     0,     318000000U),
PLLVIDEO1(106,     1,     321000000U),
PLLVIDEO1(53,     0,     324000000U),
PLLVIDEO1(108,     1,     327000000U),
PLLVIDEO1(54,     0,     330000000U),
PLLVIDEO1(110,     1,     333000000U),
PLLVIDEO1(55,     0,     336000000U),
PLLVIDEO1(112,     1,     339000000U),
PLLVIDEO1(56,     0,     342000000U),
PLLVIDEO1(114,     1,     345000000U),
PLLVIDEO1(57,     0,     348000000U),
PLLVIDEO1(116,     1,     351000000U),
PLLVIDEO1(58,     0,     354000000U),
PLLVIDEO1(118,     1,     357000000U),
PLLVIDEO1(59,     0,     360000000U),
PLLVIDEO1(120,     1,     363000000U),
PLLVIDEO1(60,     0,     366000000U),
PLLVIDEO1(122,     1,     369000000U),
PLLVIDEO1(61,     0,     372000000U),
PLLVIDEO1(124,     1,     375000000U),
PLLVIDEO1(62,     0,     378000000U),
PLLVIDEO1(126,     1,     381000000U),
PLLVIDEO1(63,     0,     384000000U),
PLLVIDEO1(128,     1,     387000000U),
PLLVIDEO1(64,     0,     390000000U),
PLLVIDEO1(130,     1,     393000000U),
PLLVIDEO1(65,     0,     396000000U),
PLLVIDEO1(132,     1,     399000000U),
PLLVIDEO1(66,     0,     402000000U),
PLLVIDEO1(134,     1,     405000000U),
PLLVIDEO1(67,     0,     408000000U),
PLLVIDEO1(136,     1,     411000000U),
PLLVIDEO1(68,     0,     414000000U),
PLLVIDEO1(138,     1,     417000000U),
PLLVIDEO1(69,     0,     420000000U),
PLLVIDEO1(140,     1,     423000000U),
PLLVIDEO1(70,     0,     426000000U),
PLLVIDEO1(142,     1,     429000000U),
PLLVIDEO1(71,     0,     432000000U),
PLLVIDEO1(144,     1,     435000000U),
PLLVIDEO1(72,     0,     438000000U),
PLLVIDEO1(146,     1,     441000000U),
PLLVIDEO1(73,     0,     444000000U),
PLLVIDEO1(148,     1,     447000000U),
PLLVIDEO1(74,     0,     450000000U),
PLLVIDEO1(150,     1,     453000000U),
PLLVIDEO1(75,     0,     456000000U),
PLLVIDEO1(152,     1,     459000000U),
PLLVIDEO1(76,     0,     462000000U),
PLLVIDEO1(154,     1,     465000000U),
PLLVIDEO1(77,     0,     468000000U),
PLLVIDEO1(156,     1,     471000000U),
PLLVIDEO1(78,     0,     474000000U),
PLLVIDEO1(158,     1,     477000000U),
PLLVIDEO1(79,     0,     480000000U),
PLLVIDEO1(160,     1,     483000000U),
PLLVIDEO1(80,     0,     486000000U),
PLLVIDEO1(162,     1,     489000000U),
PLLVIDEO1(81,     0,     492000000U),
PLLVIDEO1(164,     1,     495000000U),
PLLVIDEO1(82,     0,     498000000U),
PLLVIDEO1(166,     1,     501000000U),
PLLVIDEO1(83,     0,     504000000U),
PLLVIDEO1(168,     1,     507000000U),
PLLVIDEO1(84,     0,     510000000U),
PLLVIDEO1(170,     1,     513000000U),
PLLVIDEO1(85,     0,     516000000U),
PLLVIDEO1(172,     1,     519000000U),
PLLVIDEO1(86,     0,     522000000U),
PLLVIDEO1(174,     1,     525000000U),
PLLVIDEO1(87,     0,     528000000U),
PLLVIDEO1(176,     1,     531000000U),
PLLVIDEO1(88,     0,     534000000U),
PLLVIDEO1(178,     1,     537000000U),
PLLVIDEO1(89,     0,     540000000U),
PLLVIDEO1(180,     1,     543000000U),
PLLVIDEO1(90,     0,     546000000U),
PLLVIDEO1(182,     1,     549000000U),
PLLVIDEO1(91,     0,     552000000U),
PLLVIDEO1(184,     1,     555000000U),
PLLVIDEO1(92,     0,     558000000U),
PLLVIDEO1(186,     1,     561000000U),
PLLVIDEO1(93,     0,     564000000U),
PLLVIDEO1(188,     1,     567000000U),
PLLVIDEO1(94,     0,     570000000U),
PLLVIDEO1(190,     1,     573000000U),
PLLVIDEO1(95,     0,     576000000U),
PLLVIDEO1(192,     1,     579000000U),
PLLVIDEO1(96,     0,     582000000U),
PLLVIDEO1(194,     1,     585000000U),
PLLVIDEO1(97,     0,     588000000U),
PLLVIDEO1(196,     1,     591000000U),
PLLVIDEO1(98,     0,     594000000U),
PLLVIDEO1(198,     1,     597000000U),
PLLVIDEO1(99,     0,     600000000U),

};

/* PLLVE(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllve_tbl[] = {
PLLVE(11,		0,		1,		144000000U),
PLLVE(24,		1,		1,		150000000U),
PLLVE(12,		0,		1,		156000000U),
PLLVE(26,		1,		1,		162000000U),
PLLVE(13,		0,		1,		168000000U),
PLLVE(28,		1,		1,		174000000U),
PLLVE(14,		0,		1,		180000000U),
PLLVE(30,		1,		1,		186000000U),
PLLVE(15,		0,		1,		192000000U),
PLLVE(32,		1,		1,		198000000U),
PLLVE(16,		0,		1,		204000000U),
PLLVE(34,		1,		1,		210000000U),
PLLVE(17,		0,		1,		216000000U),
PLLVE(36,		1,		1,		222000000U),
PLLVE(18,		0,		1,		228000000U),
PLLVE(38,		1,		1,		234000000U),
PLLVE(19,		0,		1,		240000000U),
PLLVE(40,		1,		1,		246000000U),
PLLVE(20,		0,		1,		252000000U),
PLLVE(42,		1,		1,		258000000U),
PLLVE(21,		0,		1,		264000000U),
PLLVE(44,		1,		1,		270000000U),
PLLVE(22,		0,		1,		276000000U),
PLLVE(46,		1,		1,		282000000U),
PLLVE(11,		0,		0,		288000000U),
PLLVE(48,		1,		1,		294000000U),
PLLVE(24,		0,		1,		300000000U),
PLLVE(50,		1,		1,		306000000U),
PLLVE(12,		0,		0,		312000000U),
PLLVE(52,		1,		1,		318000000U),
PLLVE(26,		0,		1,		324000000U),
PLLVE(54,		1,		1,		330000000U),
PLLVE(13,		0,		0,		336000000U),
PLLVE(56,		1,		1,		342000000U),
PLLVE(28,		0,		1,		348000000U),
PLLVE(58,		1,		1,		354000000U),
PLLVE(14,		0,		0,		360000000U),
PLLVE(60,		1,		1,		366000000U),
PLLVE(30,		0,		1,		372000000U),
PLLVE(62,		1,		1,		378000000U),
PLLVE(15,		0,		0,		384000000U),
PLLVE(64,		1,		1,		390000000U),
PLLVE(32,		0,		1,		396000000U),
PLLVE(66,		1,		1,		402000000U),
PLLVE(16,		0,		0,		408000000U),
PLLVE(68,		1,		1,		414000000U),
PLLVE(34,		0,		1,		420000000U),
PLLVE(70,		1,		1,		426000000U),
PLLVE(17,		0,		0,		432000000U),
PLLVE(72,		1,		1,		438000000U),
PLLVE(36,		0,		1,		444000000U),
PLLVE(74,		1,		1,		450000000U),
PLLVE(18,		0,		0,		456000000U),
PLLVE(76,		1,		1,		462000000U),
PLLVE(38,		0,		1,		468000000U),
PLLVE(78,		1,		1,		474000000U),
PLLVE(19,		0,		0,		480000000U),
PLLVE(80,		1,		1,		486000000U),
PLLVE(40,		0,		1,		492000000U),
PLLVE(82,		1,		1,		498000000U),
PLLVE(20,		0,		0,		504000000U),
PLLVE(84,		1,		1,		510000000U),
PLLVE(42,		0,		1,		516000000U),
PLLVE(86,		1,		1,		522000000U),
PLLVE(21,		0,		0,		528000000U),
PLLVE(88,		1,		1,		534000000U),
PLLVE(44,		0,		1,		540000000U),
PLLVE(90,		1,		1,		546000000U),
PLLVE(22,		0,		0,		552000000U),
PLLVE(92,		1,		1,		558000000U),
PLLVE(46,		0,		1,		564000000U),
PLLVE(94,		1,		1,		570000000U),
PLLVE(23,		0,		0,		576000000U),
PLLVE(96,		1,		1,		582000000U),
PLLVE(48,		0,		1,		588000000U),
PLLVE(98,		1,		1,		594000000U),
PLLVE(24,		0,		0,		600000000U),
PLLVE(100,		1,		1,		606000000U),
PLLVE(50,		0,		1,		612000000U),
PLLVE(102,		1,		1,		618000000U),
PLLVE(25,		0,		0,		624000000U),
PLLVE(104,		1,		1,		630000000U),
PLLVE(52,		0,		1,		636000000U),
PLLVE(106,		1,		1,		642000000U),
PLLVE(26,		0,		0,		648000000U),
PLLVE(108,		1,		1,		652000000U),
PLLVE(54,		0,		1,		660000000U),
PLLVE(110,		1,		1,		666000000U),
PLLVE(27,		0,		0,		672000000U),
PLLVE(112,		1,		1,		678000000U),
PLLVE(56,		0,		1,		684000000U),
PLLVE(114,		1,		1,		690000000U),
PLLVE(28,		0,		0,		696000000U),
PLLVE(116,		1,		1,		702000000U),
PLLVE(58,		0,		1,		708000000U),
PLLVE(118,		1,		1,		714000000U),
PLLVE(29,		0,		0,		720000000U),
PLLVE(120,		1,		1,		726000000U),
PLLVE(60,		0,		1,		732000000U),
PLLVE(122,		1,		1,		738000000U),
PLLVE(30,		0,		0,		744000000U),
PLLVE(124,		1,		1,		750000000U),
PLLVE(62,		0,		1,		756000000U),
PLLVE(126,		1,		1,		762000000U),
PLLVE(31,		0,		0,		768000000U),
PLLVE(128,		1,		1,		774000000U),
PLLVE(64,		0,		1,		780000000U),
PLLVE(130,		1,		1,		786000000U),
PLLVE(32,		0,		0,		792000000U),
PLLVE(132,		1,		1,		798000000U),
PLLVE(66,		0,		1,		804000000U),
PLLVE(134,		1,		1,		810000000U),
PLLVE(33,		0,		0,		816000000U),
PLLVE(136,		1,		1,		822000000U),
PLLVE(68,		0,		1,		828000000U),
PLLVE(138,		1,		1,		834000000U),
PLLVE(34,		0,		0,		840000000U),
PLLVE(140,		1,		1,		846000000U),
PLLVE(70,		0,		1,		852000000U),
PLLVE(142,		1,		1,		858000000U),
PLLVE(35,		0,		0,		864000000U),
PLLVE(144,		1,		1,		870000000U),
PLLVE(72,		0,		1,		876000000U),
PLLVE(146,		1,		1,		882000000U),
PLLVE(36,		0,		0,		888000000U),
PLLVE(148,		1,		1,		894000000U),
PLLVE(74,		0,		1,		900000000U),
PLLVE(150,		1,		1,		906000000U),
PLLVE(37,		0,		0,		912000000U),
PLLVE(152,		1,		1,		918000000U),
PLLVE(76,		0,		1,		924000000U),
PLLVE(154,		1,		1,		930000000U),
PLLVE(38,		0,		0,		936000000U),
PLLVE(156,		1,		1,		942000000U),
PLLVE(78,		0,		1,		948000000U),
PLLVE(158,		1,		1,		954000000U),
PLLVE(39,		0,		0,		960000000U),
PLLVE(160,		1,		1,		966000000U),
PLLVE(80,		0,		1,		972000000U),
PLLVE(162,		1,		1,		978000000U),
PLLVE(40,		0,		0,		984000000U),
PLLVE(164,		1,		1,		990000000U),
PLLVE(82,		0,		1,		996000000U),
PLLVE(166,		1,		1,		1002000000U),
PLLVE(41,		0,		0,		1008000000U),
};

/* PLLDE(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllde_tbl[] = {
PLLDE(11,		0,		1,		144000000U),
PLLDE(24,		1,		1,		150000000U),
PLLDE(12,		0,		1,		156000000U),
PLLDE(26,		1,		1,		162000000U),
PLLDE(13,		0,		1,		168000000U),
PLLDE(28,		1,		1,		174000000U),
PLLDE(14,		0,		1,		180000000U),
PLLDE(30,		1,		1,		186000000U),
PLLDE(15,		0,		1,		192000000U),
PLLDE(32,		1,		1,		198000000U),
PLLDE(16,		0,		1,		204000000U),
PLLDE(34,		1,		1,		210000000U),
PLLDE(17,		0,		1,		216000000U),
PLLDE(36,		1,		1,		222000000U),
PLLDE(18,		0,		1,		228000000U),
PLLDE(38,		1,		1,		234000000U),
PLLDE(19,		0,		1,		240000000U),
PLLDE(40,		1,		1,		246000000U),
PLLDE(20,		0,		1,		252000000U),
PLLDE(42,		1,		1,		258000000U),
PLLDE(21,		0,		1,		264000000U),
PLLDE(44,		1,		1,		270000000U),
PLLDE(22,		0,		1,		276000000U),
PLLDE(46,		1,		1,		282000000U),
PLLDE(11,		0,		0,		288000000U),
PLLDE(48,		1,		1,		294000000U),
PLLDE(24,		0,		1,		300000000U),
PLLDE(50,		1,		1,		306000000U),
PLLDE(12,		0,		0,		312000000U),
PLLDE(52,		1,		1,		318000000U),
PLLDE(26,		0,		1,		324000000U),
PLLDE(54,		1,		1,		330000000U),
PLLDE(13,		0,		0,		336000000U),
PLLDE(56,		1,		1,		342000000U),
PLLDE(28,		0,		1,		348000000U),
PLLDE(58,		1,		1,		354000000U),
PLLDE(14,		0,		0,		360000000U),
PLLDE(60,		1,		1,		366000000U),
PLLDE(30,		0,		1,		372000000U),
PLLDE(62,		1,		1,		378000000U),
PLLDE(15,		0,		0,		384000000U),
PLLDE(64,		1,		1,		390000000U),
PLLDE(32,		0,		1,		396000000U),
PLLDE(66,		1,		1,		402000000U),
PLLDE(16,		0,		0,		408000000U),
PLLDE(68,		1,		1,		414000000U),
PLLDE(34,		0,		1,		420000000U),
PLLDE(70,		1,		1,		426000000U),
PLLDE(17,		0,		0,		432000000U),
PLLDE(72,		1,		1,		438000000U),
PLLDE(36,		0,		1,		444000000U),
PLLDE(74,		1,		1,		450000000U),
PLLDE(18,		0,		0,		456000000U),
PLLDE(76,		1,		1,		462000000U),
PLLDE(38,		0,		1,		468000000U),
PLLDE(78,		1,		1,		474000000U),
PLLDE(19,		0,		0,		480000000U),
PLLDE(80,		1,		1,		486000000U),
PLLDE(40,		0,		1,		492000000U),
PLLDE(82,		1,		1,		498000000U),
PLLDE(20,		0,		0,		504000000U),
PLLDE(84,		1,		1,		510000000U),
PLLDE(42,		0,		1,		516000000U),
PLLDE(86,		1,		1,		522000000U),
PLLDE(21,		0,		0,		528000000U),
PLLDE(88,		1,		1,		534000000U),
PLLDE(44,		0,		1,		540000000U),
PLLDE(90,		1,		1,		546000000U),
PLLDE(22,		0,		0,		552000000U),
PLLDE(92,		1,		1,		558000000U),
PLLDE(46,		0,		1,		564000000U),
PLLDE(94,		1,		1,		570000000U),
PLLDE(23,		0,		0,		576000000U),
PLLDE(96,		1,		1,		582000000U),
PLLDE(48,		0,		1,		588000000U),
PLLDE(98,		1,		1,		594000000U),
PLLDE(24,		0,		0,		600000000U),
PLLDE(100,		1,		1,		606000000U),
PLLDE(50,		0,		1,		612000000U),
PLLDE(102,		1,		1,		618000000U),
PLLDE(25,		0,		0,		624000000U),
PLLDE(104,		1,		1,		630000000U),
PLLDE(52,		0,		1,		636000000U),
PLLDE(106,		1,		1,		642000000U),
PLLDE(26,		0,		0,		648000000U),
PLLDE(108,		1,		1,		652000000U),
PLLDE(54,		0,		1,		660000000U),
PLLDE(110,		1,		1,		666000000U),
PLLDE(27,		0,		0,		672000000U),
PLLDE(112,		1,		1,		678000000U),
PLLDE(56,		0,		1,		684000000U),
PLLDE(114,		1,		1,		690000000U),
PLLDE(28,		0,		0,		696000000U),
PLLDE(116,		1,		1,		702000000U),
PLLDE(58,		0,		1,		708000000U),
PLLDE(118,		1,		1,		714000000U),
PLLDE(29,		0,		0,		720000000U),
PLLDE(120,		1,		1,		726000000U),
PLLDE(60,		0,		1,		732000000U),
PLLDE(122,		1,		1,		738000000U),
PLLDE(30,		0,		0,		744000000U),
PLLDE(124,		1,		1,		750000000U),
PLLDE(62,		0,		1,		756000000U),
PLLDE(126,		1,		1,		762000000U),
PLLDE(31,		0,		0,		768000000U),
PLLDE(128,		1,		1,		774000000U),
PLLDE(64,		0,		1,		780000000U),
PLLDE(130,		1,		1,		786000000U),
PLLDE(32,		0,		0,		792000000U),
PLLDE(132,		1,		1,		798000000U),
PLLDE(66,		0,		1,		804000000U),
PLLDE(134,		1,		1,		810000000U),
PLLDE(33,		0,		0,		816000000U),
PLLDE(136,		1,		1,		822000000U),
PLLDE(68,		0,		1,		828000000U),
PLLDE(138,		1,		1,		834000000U),
PLLDE(34,		0,		0,		840000000U),
PLLDE(140,		1,		1,		846000000U),
PLLDE(70,		0,		1,		852000000U),
PLLDE(142,		1,		1,		858000000U),
PLLDE(35,		0,		0,		864000000U),
PLLDE(144,		1,		1,		870000000U),
PLLDE(72,		0,		1,		876000000U),
PLLDE(146,		1,		1,		882000000U),
PLLDE(36,		0,		0,		888000000U),
PLLDE(148,		1,		1,		894000000U),
PLLDE(74,		0,		1,		900000000U),
};

/* PLLHSIC(n, d1, d2, freq)	F_N8X8_D1V1X1_D2V0X1 */
struct sunxi_clk_factor_freq factor_pllhsic_tbl[] = {
PLLHSIC(14,		0,		1,		180000000U),
PLLHSIC(15,		0,		1,		192000000U),
PLLHSIC(16,		0,		1,		204000000U),
PLLHSIC(17,		0,		1,		216000000U),
PLLHSIC(18,		0,		1,		228000000U),
PLLHSIC(19,		0,		1,		240000000U),
PLLHSIC(20,		0,		1,		252000000U),
PLLHSIC(21,		0,		1,		264000000U),
PLLHSIC(22,		0,		1,		276000000U),
PLLHSIC(11,		0,		0,		288000000U),
PLLHSIC(12,		0,		0,		312000000U),
PLLHSIC(13,		0,		0,		336000000U),
PLLHSIC(14,		0,		0,		360000000U),
PLLHSIC(15,		0,		0,		384000000U),
PLLHSIC(16,		0,		0,		408000000U),
PLLHSIC(17,		0,		0,		432000000U),
PLLHSIC(18,		0,		0,		456000000U),
PLLHSIC(19,		0,		0,		480000000U),
PLLHSIC(20,		0,		0,		504000000U),
PLLHSIC(21,		0,		0,		528000000U),
PLLHSIC(22,		0,		0,		552000000U),
PLLHSIC(23,		0,		0,		576000000U),
PLLHSIC(24,		0,		0,		600000000U),
};

static unsigned int pllcpu_max, pllddr0_max, pllperiph0_max, pllperiph1_max,
		    pllgpu_max, pllvideo0_max, pllvideo1_max, pllve_max,
		    pllde_max, pllhsic_max;

#define PLL_MAX_ASSIGN(name) (pll##name##_max = \
	factor_pll##name##_tbl[ARRAY_SIZE(factor_pll##name##_tbl)-1].freq)

void sunxi_clk_factor_initlimits(void)
{
	PLL_MAX_ASSIGN(cpu);
	PLL_MAX_ASSIGN(ddr0);
	PLL_MAX_ASSIGN(periph0);
	PLL_MAX_ASSIGN(periph1);
	PLL_MAX_ASSIGN(gpu);
	PLL_MAX_ASSIGN(video0);
	PLL_MAX_ASSIGN(video1);
	PLL_MAX_ASSIGN(ve);
	PLL_MAX_ASSIGN(de);
	PLL_MAX_ASSIGN(hsic);
}
